home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-05-19 | 48.3 KB | 2,154 lines |
- #define EXTERN extern
- #include "texd.h"
-
- insertdollarsign () {
- insertdollarsign_regmem
- backinput () ;
- curtok = 804 ;
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 865 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 866 ;
- helpline [ 0 ] = 867 ;
- }
- inserror () ;
- }
- youcant () {
- youcant_regmem
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 541 ) ;
- }
- printcmdchr ( curcmd , curchr ) ;
- print ( 868 ) ;
- printmode ( curlist .modefield ) ;
- }
- reportillegalcase () {
- reportillegalcase_regmem
- youcant () ;
- {
- helpptr = 4 ;
- helpline [ 3 ] = 869 ;
- helpline [ 2 ] = 870 ;
- helpline [ 1 ] = 871 ;
- helpline [ 0 ] = 872 ;
- }
- error () ;
- }
- boolean privileged () {
- register boolean Result; privileged_regmem
- if ( curlist .modefield > 0 )
- Result = true ;
- else {
-
- reportillegalcase () ;
- Result = false ;
- }
- return(Result) ;
- }
- boolean itsallover () {
- /* 10 */ register boolean Result; itsallover_regmem
- if ( privileged () )
- {
- if ( ( memtop - 2 == pagetail ) && ( curlist .headfield == curlist
- .tailfield ) && ( deadcycles == 0 ) )
- {
- Result = true ;
- return(Result) ;
- }
- backinput () ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newnullbox () ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- mem [ curlist .tailfield + 1 ] .cint = eqtb [ 5704 ] .cint ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newglue ( 8 ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- {
- mem [ curlist .tailfield ] .hh .v.RH = newpenalty ( -1073741824L ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- buildpage () ;
- }
- Result = false ;
- return(Result) ;
- }
- appendglue () {
- appendglue_regmem
- smallnumber s ;
- s = curchr ;
- switch ( s )
- {case 0 :
- curval = 4 ;
- break ;
- case 1 :
- curval = 8 ;
- break ;
- case 2 :
- curval = 12 ;
- break ;
- case 3 :
- curval = 16 ;
- break ;
- case 4 :
- scanglue ( 2 ) ;
- break ;
- case 5 :
- scanglue ( 3 ) ;
- break ;
- }
- {
- mem [ curlist .tailfield ] .hh .v.RH = newglue ( curval ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- if ( s >= 4 )
- {
- decr ( mem [ curval ] .hh .v.RH ) ;
- if ( s > 4 )
- mem [ curlist .tailfield ] .hh.b1 = 99 ;
- }
- }
- appendkern () {
- appendkern_regmem
- quarterword s ;
- s = curchr ;
- scandimen ( s == 99 , false , false ) ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newkern ( curval ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- mem [ curlist .tailfield ] .hh.b1 = s ;
- }
- offsave () {
- offsave_regmem
- halfword p ;
- if ( curgroup == 0 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 633 ) ;
- }
- printcmdchr ( curcmd , curchr ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 891 ;
- }
- error () ;
- }
- else {
-
- backinput () ;
- p = getavail () ;
- mem [ memtop - 3 ] .hh .v.RH = p ;
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 483 ) ;
- }
- switch ( curgroup )
- {case 14 :
- {
- mem [ p ] .hh .v.LH = 7356 ;
- printesc ( 375 ) ;
- }
- break ;
- case 15 :
- {
- mem [ p ] .hh .v.LH = 804 ;
- printchar ( 36 ) ;
- }
- break ;
- case 16 :
- {
- mem [ p ] .hh .v.LH = 7357 ;
- mem [ p ] .hh .v.RH = getavail () ;
- p = mem [ p ] .hh .v.RH ;
- mem [ p ] .hh .v.LH = 3118 ;
- printesc ( 890 ) ;
- }
- break ;
- default:
- {
- mem [ p ] .hh .v.LH = 637 ;
- printchar ( 125 ) ;
- }
- break ;
- }
- print ( 484 ) ;
- begintokenlist ( mem [ memtop - 3 ] .hh .v.RH , 4 ) ;
- {
- helpptr = 5 ;
- helpline [ 4 ] = 885 ;
- helpline [ 3 ] = 886 ;
- helpline [ 2 ] = 887 ;
- helpline [ 1 ] = 888 ;
- helpline [ 0 ] = 889 ;
- }
- error () ;
- }
- }
- extrarightbrace () {
- extrarightbrace_regmem
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 896 ) ;
- }
- switch ( curgroup )
- {case 14 :
- printesc ( 375 ) ;
- break ;
- case 15 :
- printchar ( 36 ) ;
- break ;
- case 16 :
- printesc ( 730 ) ;
- break ;
- }
- {
- helpptr = 5 ;
- helpline [ 4 ] = 897 ;
- helpline [ 3 ] = 898 ;
- helpline [ 2 ] = 899 ;
- helpline [ 1 ] = 900 ;
- helpline [ 0 ] = 901 ;
- }
- error () ;
- incr ( alignstate ) ;
- }
- normalparagraph () {
- normalparagraph_regmem
- if ( eqtb [ 5286 ] .cint != 0 )
- eqworddefine ( 5286 , 0 ) ;
- if ( eqtb [ 5718 ] .cint != 0 )
- eqworddefine ( 5718 , 0 ) ;
- if ( eqtb [ 5308 ] .cint != 1 )
- eqworddefine ( 5308 , 1 ) ;
- if ( eqtb [ 4056 ] .hh .v.RH != 0 )
- eqdefine ( 4056 , 117 , 0 ) ;
- }
- boxend () {
- boxend_regmem
- halfword p ;
- if ( savestack [ saveptr + 0 ] .cint < 1073741824L )
- {
- if ( curbox != 0 )
- {
- mem [ curbox + 4 ] .cint = savestack [ saveptr + 0 ] .cint ;
- if ( abs ( curlist .modefield ) == 1 )
- {
- appendtovlist ( curbox ) ;
- if ( adjusttail != 0 )
- {
- if ( memtop - 5 != adjusttail )
- {
- mem [ curlist .tailfield ] .hh .v.RH = mem [ memtop - 5 ] .hh
- .v.RH ;
- curlist .tailfield = adjusttail ;
- }
- adjusttail = 0 ;
- }
- if ( curlist .modefield > 0 )
- buildpage () ;
- }
- else {
-
- if ( abs ( curlist .modefield ) == 101 )
- curlist .auxfield = 1000 ;
- else {
-
- p = newnoad () ;
- mem [ p + 1 ] .hh .v.RH = 2 ;
- mem [ p + 1 ] .hh .v.LH = curbox ;
- curbox = p ;
- }
- mem [ curlist .tailfield ] .hh .v.RH = curbox ;
- curlist .tailfield = curbox ;
- }
- }
- }
- else if ( savestack [ saveptr + 0 ] .cint < 1073742336L )
- if ( savestack [ saveptr + 0 ] .cint < 1073742080L )
- eqdefine ( -1073737502L + savestack [ saveptr + 0 ] .cint , 118 , curbox ) ;
- else geqdefine ( -1073737758L + savestack [ saveptr + 0 ] .cint , 118 ,
- curbox ) ;
- else if ( curbox != 0 )
- if ( savestack [ saveptr + 0 ] .cint > 1073742336L )
- {
- do {
- getxtoken () ;
- } while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
- if ( ( ( curcmd == 26 ) && ( abs ( curlist .modefield ) != 1 ) ) || ( (
- curcmd == 27 ) && ( abs ( curlist .modefield ) == 1 ) ) || ( ( curcmd ==
- 28 ) && ( abs ( curlist .modefield ) == 201 ) ) )
- {
- appendglue () ;
- mem [ curlist .tailfield ] .hh.b1 = savestack [ saveptr + 0 ] .cint - (
- 1073742237L ) ;
- mem [ curlist .tailfield + 1 ] .hh .v.RH = curbox ;
- }
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 914 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 915 ;
- helpline [ 1 ] = 916 ;
- helpline [ 0 ] = 917 ;
- }
- backerror () ;
- flushnodelist ( curbox ) ;
- }
- }
- else shipout ( curbox ) ;
- }
- beginbox () {
- /* 10 30 */ beginbox_regmem
- halfword p, q ;
- quarterword m ;
- halfword k ;
- eightbits n ;
- switch ( curchr )
- {case 0 :
- {
- scaneightbitint () ;
- curbox = eqtb [ 4322 + curval ] .hh .v.RH ;
- eqtb [ 4322 + curval ] .hh .v.RH = 0 ;
- }
- break ;
- case 1 :
- {
- scaneightbitint () ;
- curbox = copynodelist ( eqtb [ 4322 + curval ] .hh .v.RH ) ;
- }
- break ;
- case 2 :
- {
- curbox = 0 ;
- if ( abs ( curlist .modefield ) == 201 )
- {
- youcant () ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 918 ;
- }
- error () ;
- }
- else if ( ( curlist .modefield == 1 ) && ( curlist .headfield == curlist
- .tailfield ) )
- {
- youcant () ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 919 ;
- helpline [ 0 ] = 920 ;
- }
- error () ;
- }
- else {
-
- if ( ! ( curlist .tailfield >= himemmin ) )
- if ( ( mem [ curlist .tailfield ] .hh.b0 == 0 ) || ( mem [ curlist
- .tailfield ] .hh.b0 == 1 ) )
- {
- q = curlist .headfield ;
- do {
- p = q ;
- if ( ! ( q >= himemmin ) )
- if ( mem [ q ] .hh.b0 == 7 )
- {
- {register integer for_end; m = 1 ; for_end = mem [ q ] .hh.b1
- ; if ( m <= for_end) do
- p = mem [ p ] .hh .v.RH ;
- while ( m++ < for_end ) ; }
- if ( p == curlist .tailfield )
- goto lab30 ;
- }
- q = mem [ p ] .hh .v.RH ;
- } while ( ! ( q == curlist .tailfield ) ) ;
- curbox = curlist .tailfield ;
- mem [ curbox + 4 ] .cint = 0 ;
- curlist .tailfield = p ;
- mem [ p ] .hh .v.RH = 0 ;
- lab30: ;
- }
- }
- }
- break ;
- case 3 :
- {
- scaneightbitint () ;
- n = curval ;
- if ( ! scankeyword ( 695 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 921 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 922 ;
- helpline [ 0 ] = 923 ;
- }
- error () ;
- }
- scandimen ( false , false , false ) ;
- curbox = vsplit ( n , curval ) ;
- }
- break ;
- default:
- {
- k = curchr - 4 ;
- incr ( saveptr ) ;
- scanspec () ;
- if ( k == 101 )
- if ( ( savestack [ saveptr - 3 ] .cint < 1073741824L ) && ( abs (
- curlist .modefield ) == 1 ) )
- newsavelevel ( 3 ) ;
- else newsavelevel ( 2 ) ;
- else {
-
- if ( k == 1 )
- newsavelevel ( 4 ) ;
- else {
-
- newsavelevel ( 5 ) ;
- k = 1 ;
- }
- normalparagraph () ;
- }
- pushnest () ;
- curlist .modefield = - (integer) k ;
- if ( k == 1 )
- {
- curlist .auxfield = -65536000L ;
- if ( eqtb [ 4062 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4062 ] .hh .v.RH , 11 ) ;
- }
- else {
-
- curlist .auxfield = 1000 ;
- if ( eqtb [ 4061 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4061 ] .hh .v.RH , 10 ) ;
- }
- return ;
- }
- break ;
- }
- boxend () ;
- }
- scanbox () {
- scanbox_regmem
- do {
- getxtoken () ;
- } while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
- if ( curcmd == 20 )
- beginbox () ;
- else if ( ( savestack [ saveptr + 0 ] .cint >= 1073742337L ) && ( ( curcmd
- == 36 ) || ( curcmd == 35 ) ) )
- {
- curbox = scanrulespec () ;
- boxend () ;
- }
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 924 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 925 ;
- helpline [ 1 ] = 926 ;
- helpline [ 0 ] = 927 ;
- }
- backerror () ;
- }
- }
- zpackage ( c )
- smallnumber c ;
- {package_regmem
- scaled h ;
- halfword p ;
- scaled d ;
- d = eqtb [ 5708 ] .cint ;
- unsave () ;
- saveptr = saveptr - 3 ;
- if ( curlist .modefield == -101 )
- curbox = hpack ( mem [ curlist .headfield ] .hh .v.RH , savestack [ saveptr
- + 2 ] .cint , savestack [ saveptr + 1 ] .cint ) ;
- else {
-
- curbox = vpackage ( mem [ curlist .headfield ] .hh .v.RH , savestack [
- saveptr + 2 ] .cint , savestack [ saveptr + 1 ] .cint , d ) ;
- if ( c == 4 )
- {
- h = 0 ;
- p = mem [ curbox + 5 ] .hh .v.RH ;
- if ( p != 0 )
- if ( mem [ p ] .hh.b0 <= 2 )
- h = mem [ p + 3 ] .cint ;
- mem [ curbox + 2 ] .cint = mem [ curbox + 2 ] .cint - h + mem [ curbox +
- 3 ] .cint ;
- mem [ curbox + 3 ] .cint = h ;
- }
- }
- popnest () ;
- boxend () ;
- }
- znewgraf ( indented )
- boolean indented ;
- {newgraf_regmem
- curlist .pgfield = 0 ;
- if ( ( curlist .modefield == 1 ) || ( curlist .headfield != curlist
- .tailfield ) )
- {
- mem [ curlist .tailfield ] .hh .v.RH = newparamglue ( 2 ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- pushnest () ;
- curlist .modefield = 101 ;
- curlist .auxfield = 1000 ;
- if ( indented )
- {
- curlist .tailfield = newnullbox () ;
- mem [ curlist .headfield ] .hh .v.RH = curlist .tailfield ;
- mem [ curlist .tailfield + 1 ] .cint = eqtb [ 5701 ] .cint ;
- }
- if ( eqtb [ 4058 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4058 ] .hh .v.RH , 7 ) ;
- if ( nestptr == 1 )
- buildpage () ;
- }
- indentinhmode () {
- indentinhmode_regmem
- halfword p, q ;
- if ( curchr > 0 )
- {
- p = newnullbox () ;
- mem [ p + 1 ] .cint = eqtb [ 5701 ] .cint ;
- if ( abs ( curlist .modefield ) == 101 )
- curlist .auxfield = 1000 ;
- else {
-
- q = newnoad () ;
- mem [ q + 1 ] .hh .v.RH = 2 ;
- mem [ q + 1 ] .hh .v.LH = p ;
- p = q ;
- }
- {
- mem [ curlist .tailfield ] .hh .v.RH = p ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- }
- }
- headforvmode () {
- headforvmode_regmem
- if ( curlist .modefield < 0 )
- if ( curcmd != 36 )
- offsave () ;
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 541 ) ;
- }
- printesc ( 380 ) ;
- print ( 930 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 931 ;
- helpline [ 0 ] = 932 ;
- }
- error () ;
- }
- else {
-
- backinput () ;
- curtok = partoken ;
- backinput () ;
- curinput .indexfield = 4 ;
- }
- }
- endgraf () {
- endgraf_regmem
- if ( curlist .modefield == 101 )
- {
- if ( curlist .headfield == curlist .tailfield )
- popnest () ;
- else linebreak ( eqtb [ 5273 ] .cint ) ;
- normalparagraph () ;
- errorcount = 0 ;
- }
- }
- begininsertoradjust () {
- begininsertoradjust_regmem
- if ( curcmd == 38 )
- curval = 255 ;
- else {
-
- scaneightbitint () ;
- if ( curval == 255 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 933 ) ;
- }
- printesc ( 198 ) ;
- printint ( 255 ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 934 ;
- }
- error () ;
- curval = 0 ;
- }
- }
- savestack [ saveptr + 0 ] .cint = curval ;
- incr ( saveptr ) ;
- newsavelevel ( 11 ) ;
- scanleftbrace () ;
- normalparagraph () ;
- pushnest () ;
- curlist .modefield = -1 ;
- curlist .auxfield = -65536000L ;
- }
- makemark () {
- makemark_regmem
- halfword p ;
- p = scantoks ( false , true ) ;
- p = getnode ( 2 ) ;
- mem [ p ] .hh.b0 = 4 ;
- mem [ p ] .hh.b1 = 0 ;
- mem [ p + 1 ] .cint = defref ;
- mem [ curlist .tailfield ] .hh .v.RH = p ;
- curlist .tailfield = p ;
- }
- appendpenalty () {
- appendpenalty_regmem
- scanint () ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newpenalty ( curval ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- if ( curlist .modefield == 1 )
- buildpage () ;
- }
- deletelast () {
- /* 10 */ deletelast_regmem
- halfword p, q ;
- quarterword m ;
- if ( ( curlist .modefield == 1 ) && ( curlist .tailfield == curlist
- .headfield ) )
- {
- if ( ( curchr != 10 ) || ( lastglue != 65535L ) )
- {
- youcant () ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 919 ;
- helpline [ 0 ] = 935 ;
- }
- if ( curchr == 11 )
- helpline [ 0 ] = ( 936 ) ;
- else if ( curchr != 10 )
- helpline [ 0 ] = ( 937 ) ;
- error () ;
- }
- }
- else {
-
- if ( ! ( curlist .tailfield >= himemmin ) )
- if ( mem [ curlist .tailfield ] .hh.b0 == curchr )
- {
- q = curlist .headfield ;
- do {
- p = q ;
- if ( ! ( q >= himemmin ) )
- if ( mem [ q ] .hh.b0 == 7 )
- {
- {register integer for_end; m = 1 ; for_end = mem [ q ] .hh.b1
- ; if ( m <= for_end) do
- p = mem [ p ] .hh .v.RH ;
- while ( m++ < for_end ) ; }
- if ( p == curlist .tailfield )
- return ;
- }
- q = mem [ p ] .hh .v.RH ;
- } while ( ! ( q == curlist .tailfield ) ) ;
- mem [ p ] .hh .v.RH = 0 ;
- flushnodelist ( curlist .tailfield ) ;
- curlist .tailfield = p ;
- }
- }
- }
- unpackage () {
- /* 10 */ unpackage_regmem
- halfword p ;
- schar c ;
- c = curchr ;
- scaneightbitint () ;
- p = eqtb [ 4322 + curval ] .hh .v.RH ;
- if ( p == 0 )
- return ;
- if ( ( abs ( curlist .modefield ) == 201 ) || ( ( abs ( curlist .modefield )
- == 1 ) && ( mem [ p ] .hh.b0 != 1 ) ) || ( ( abs ( curlist .modefield ) ==
- 101 ) && ( mem [ p ] .hh.b0 != 0 ) ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 945 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 946 ;
- helpline [ 1 ] = 947 ;
- helpline [ 0 ] = 948 ;
- }
- error () ;
- return ;
- }
- if ( c == 1 )
- mem [ curlist .tailfield ] .hh .v.RH = copynodelist ( mem [ p + 5 ] .hh
- .v.RH ) ;
- else {
-
- mem [ curlist .tailfield ] .hh .v.RH = mem [ p + 5 ] .hh .v.RH ;
- eqtb [ 4322 + curval ] .hh .v.RH = 0 ;
- freenode ( p , 7 ) ;
- }
- while ( mem [ curlist .tailfield ] .hh .v.RH != 0 ) curlist .tailfield = mem
- [ curlist .tailfield ] .hh .v.RH ;
- }
- appenditaliccorrecti () {
- /* 10 */ appenditaliccorrecti_regmem
- halfword p ;
- internalfontnumber f ;
- if ( curlist .tailfield != curlist .headfield )
- {
- if ( ( curlist .tailfield >= himemmin ) )
- p = curlist .tailfield ;
- else if ( mem [ curlist .tailfield ] .hh.b0 == 6 )
- p = curlist .tailfield + 1 ;
- else return ;
- f = mem [ p ] .hh.b0 ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newkern ( fontinfo [ italicbase [
- f ] + ( fontinfo [ charbase [ f ] + mem [ p ] .hh.b1 ] .qqqq .b2 ) / 4 ]
- .cint ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- mem [ curlist .tailfield ] .hh.b1 = 1 ;
- }
- }
- appenddiscretionary () {
- appenddiscretionary_regmem
- integer c ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newdisc () ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- if ( curchr == 1 )
- {
- c = hyphenchar [ eqtb [ 4578 ] .hh .v.RH ] ;
- if ( c >= 0 )
- if ( c < 256 )
- mem [ curlist .tailfield + 1 ] .hh .v.LH = newcharacter ( eqtb [ 4578 ]
- .hh .v.RH , c ) ;
- }
- else {
-
- incr ( saveptr ) ;
- savestack [ saveptr - 1 ] .cint = 0 ;
- scanleftbrace () ;
- newsavelevel ( 10 ) ;
- pushnest () ;
- curlist .modefield = -101 ;
- curlist .auxfield = 1000 ;
- }
- }
- builddiscretionary () {
- /* 30 10 */ builddiscretionary_regmem
- halfword p, q ;
- integer n ;
- unsave () ;
- q = curlist .headfield ;
- p = mem [ q ] .hh .v.RH ;
- n = 0 ;
- while ( p != 0 ) {
-
- if ( ! ( p >= himemmin ) )
- if ( mem [ p ] .hh.b0 > 2 )
- if ( mem [ p ] .hh.b0 != 11 )
- if ( mem [ p ] .hh.b0 != 6 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 955 ) ;
- }
- {
- helpptr = 1 ;
- helpline [ 0 ] = 956 ;
- }
- error () ;
- begindiagnostic () ;
- printnl ( 957 ) ;
- showbox ( p ) ;
- enddiagnostic ( true ) ;
- flushnodelist ( p ) ;
- mem [ q ] .hh .v.RH = 0 ;
- goto lab30 ;
- }
- q = p ;
- p = mem [ q ] .hh .v.RH ;
- incr ( n ) ;
- }
- lab30: ;
- p = mem [ curlist .headfield ] .hh .v.RH ;
- popnest () ;
- switch ( savestack [ saveptr - 1 ] .cint )
- {case 0 :
- mem [ curlist .tailfield + 1 ] .hh .v.LH = p ;
- break ;
- case 1 :
- mem [ curlist .tailfield + 1 ] .hh .v.RH = p ;
- break ;
- case 2 :
- {
- if ( ( n > 0 ) && ( abs ( curlist .modefield ) == 201 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 949 ) ;
- }
- printesc ( 217 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 950 ;
- helpline [ 0 ] = 951 ;
- }
- flushnodelist ( p ) ;
- n = 0 ;
- error () ;
- }
- else mem [ curlist .tailfield ] .hh .v.RH = p ;
- if ( n <= 255 )
- mem [ curlist .tailfield ] .hh.b1 = n ;
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 952 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 953 ;
- helpline [ 0 ] = 954 ;
- }
- error () ;
- }
- if ( n > 0 )
- curlist .tailfield = q ;
- decr ( saveptr ) ;
- return ;
- }
- break ;
- }
- incr ( savestack [ saveptr - 1 ] .cint ) ;
- scanleftbrace () ;
- newsavelevel ( 10 ) ;
- pushnest () ;
- curlist .modefield = -101 ;
- curlist .auxfield = 1000 ;
- }
- makeaccent () {
- makeaccent_regmem
- real s, t ;
- halfword p, q, r ;
- internalfontnumber f ;
- scaled a, h, x, w, delta ;
- fourquarters i ;
- scancharnum () ;
- f = eqtb [ 4578 ] .hh .v.RH ;
- p = newcharacter ( f , curval ) ;
- if ( p != 0 )
- {
- x = fontinfo [ 5 + parambase [ f ] ] .cint ;
- s = fontinfo [ 1 + parambase [ f ] ] .cint / ((double) 65536.0 ) ;
- a = fontinfo [ widthbase [ f ] + fontinfo [ charbase [ f ] + mem [ p ]
- .hh.b1 ] .qqqq .b0 ] .cint ;
- doassignments () ;
- q = 0 ;
- f = eqtb [ 4578 ] .hh .v.RH ;
- if ( ( curcmd == 11 ) || ( curcmd == 12 ) || ( curcmd == 67 ) )
- q = newcharacter ( f , curchr ) ;
- else if ( curcmd == 16 )
- {
- scancharnum () ;
- q = newcharacter ( f , curval ) ;
- }
- else backinput () ;
- if ( q != 0 )
- {
- t = fontinfo [ 1 + parambase [ f ] ] .cint / ((double) 65536.0 ) ;
- i = fontinfo [ charbase [ f ] + mem [ q ] .hh.b1 ] .qqqq ;
- w = fontinfo [ widthbase [ f ] + i .b0 ] .cint ;
- h = fontinfo [ heightbase [ f ] + ( i .b1 ) / 16 ] .cint ;
- if ( h != x )
- {
- p = hpack ( p , 0 , 1 ) ;
- mem [ p + 4 ] .cint = x - h ;
- }
- delta = round ( ( w - a ) / ((double) 2.0 ) + h * t - x * s ) ;
- r = newkern ( delta ) ;
- mem [ r ] .hh.b1 = 2 ;
- mem [ curlist .tailfield ] .hh .v.RH = r ;
- mem [ r ] .hh .v.RH = p ;
- curlist .tailfield = newkern ( - (integer) a - delta ) ;
- mem [ curlist .tailfield ] .hh.b1 = 2 ;
- mem [ p ] .hh .v.RH = curlist .tailfield ;
- p = q ;
- }
- mem [ curlist .tailfield ] .hh .v.RH = p ;
- curlist .tailfield = p ;
- curlist .auxfield = 1000 ;
- }
- }
- alignerror () {
- alignerror_regmem
- if ( abs ( alignstate ) > 2 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 962 ) ;
- }
- printcmdchr ( curcmd , curchr ) ;
- if ( curtok == 1062 )
- {
- {
- helpptr = 6 ;
- helpline [ 5 ] = 963 ;
- helpline [ 4 ] = 964 ;
- helpline [ 3 ] = 965 ;
- helpline [ 2 ] = 966 ;
- helpline [ 1 ] = 967 ;
- helpline [ 0 ] = 968 ;
- }
- }
- else {
-
- {
- helpptr = 5 ;
- helpline [ 4 ] = 963 ;
- helpline [ 3 ] = 969 ;
- helpline [ 2 ] = 966 ;
- helpline [ 1 ] = 967 ;
- helpline [ 0 ] = 968 ;
- }
- }
- error () ;
- }
- else {
-
- backinput () ;
- if ( alignstate < 0 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 515 ) ;
- }
- incr ( alignstate ) ;
- curtok = 379 ;
- }
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 958 ) ;
- }
- decr ( alignstate ) ;
- curtok = 637 ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 959 ;
- helpline [ 1 ] = 960 ;
- helpline [ 0 ] = 961 ;
- }
- inserror () ;
- }
- }
- noalignerror () {
- noalignerror_regmem
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 962 ) ;
- }
- printesc ( 386 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 970 ;
- helpline [ 0 ] = 971 ;
- }
- error () ;
- }
- omiterror () {
- omiterror_regmem
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 962 ) ;
- }
- printesc ( 388 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 972 ;
- helpline [ 0 ] = 971 ;
- }
- error () ;
- }
- doendv () {
- doendv_regmem
- if ( curgroup == 6 )
- {
- endgraf () ;
- if ( fincol () )
- finrow () ;
- }
- else offsave () ;
- }
- cserror () {
- cserror_regmem
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 633 ) ;
- }
- printesc ( 364 ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 974 ;
- }
- error () ;
- }
- zpushmath ( c )
- groupcode c ;
- {pushmath_regmem
- pushnest () ;
- curlist .modefield = -201 ;
- curlist .auxfield = 0 ;
- newsavelevel ( c ) ;
- }
- initmath () {
- /* 21 40 45 30 */ initmath_regmem
- scaled w ;
- scaled l ;
- scaled s ;
- halfword p ;
- halfword q ;
- internalfontnumber f ;
- integer n ;
- scaled v ;
- scaled d ;
- gettoken () ;
- if ( ( curcmd == 3 ) && ( curlist .modefield > 0 ) )
- {
- if ( curlist .headfield == curlist .tailfield )
- {
- popnest () ;
- w = -1073741823L ;
- }
- else {
-
- linebreak ( eqtb [ 5274 ] .cint ) ;
- v = mem [ justbox + 4 ] .cint + 2 * fontinfo [ 6 + parambase [ eqtb [
- 4578 ] .hh .v.RH ] ] .cint ;
- w = -1073741823L ;
- p = mem [ justbox + 5 ] .hh .v.RH ;
- while ( p != 0 ) {
-
- lab21: if ( ( p >= himemmin ) )
- {
- f = mem [ p ] .hh.b0 ;
- d = fontinfo [ widthbase [ f ] + fontinfo [ charbase [ f ] + mem [ p
- ] .hh.b1 ] .qqqq .b0 ] .cint ;
- goto lab40 ;
- }
- switch ( mem [ p ] .hh.b0 )
- {case 0 :
- case 1 :
- case 2 :
- {
- d = mem [ p + 1 ] .cint ;
- goto lab40 ;
- }
- break ;
- case 6 :
- {
- mem [ memtop - 12 ] = mem [ p + 1 ] ;
- mem [ memtop - 12 ] .hh .v.RH = mem [ p ] .hh .v.RH ;
- p = memtop - 12 ;
- goto lab21 ;
- }
- break ;
- case 11 :
- case 9 :
- d = mem [ p + 1 ] .cint ;
- break ;
- case 10 :
- {
- q = mem [ p + 1 ] .hh .v.LH ;
- d = mem [ q + 1 ] .cint ;
- if ( mem [ justbox + 5 ] .hh.b0 == 1 )
- {
- if ( ( mem [ justbox + 5 ] .hh.b1 == mem [ q ] .hh.b0 ) && ( mem
- [ q + 2 ] .cint != 0 ) )
- v = 1073741823L ;
- }
- else if ( mem [ justbox + 5 ] .hh.b0 == 2 )
- {
- if ( ( mem [ justbox + 5 ] .hh.b1 == mem [ q ] .hh.b1 ) && ( mem
- [ q + 3 ] .cint != 0 ) )
- v = 1073741823L ;
- }
- if ( mem [ p ] .hh.b1 >= 100 )
- goto lab40 ;
- }
- break ;
- case 8 :
- d = 0 ;
- break ;
- default:
- d = 0 ;
- break ;
- }
- if ( v < 1073741823L )
- v = v + d ;
- goto lab45 ;
- lab40: if ( v < 1073741823L )
- {
- v = v + d ;
- w = v ;
- }
- else {
-
- w = 1073741823L ;
- goto lab30 ;
- }
- lab45: p = mem [ p ] .hh .v.RH ;
- }
- lab30: ;
- }
- if ( eqtb [ 4056 ] .hh .v.RH == 0 )
- if ( ( eqtb [ 5718 ] .cint != 0 ) && ( ( ( eqtb [ 5308 ] .cint >= 0 ) && (
- curlist .pgfield + 2 > eqtb [ 5308 ] .cint ) ) || ( curlist .pgfield + 1 <
- - (integer) eqtb [ 5308 ] .cint ) ) )
- {
- l = eqtb [ 5704 ] .cint - abs ( eqtb [ 5718 ] .cint ) ;
- if ( eqtb [ 5718 ] .cint > 0 )
- s = eqtb [ 5718 ] .cint ;
- else s = 0 ;
- }
- else {
-
- l = eqtb [ 5704 ] .cint ;
- s = 0 ;
- }
- else {
-
- n = mem [ eqtb [ 4056 ] .hh .v.RH ] .hh .v.LH ;
- if ( curlist .pgfield + 2 >= n )
- p = eqtb [ 4056 ] .hh .v.RH + 2 * n ;
- else p = eqtb [ 4056 ] .hh .v.RH + 2 * ( curlist .pgfield + 2 ) ;
- s = mem [ p - 1 ] .cint ;
- l = mem [ p ] .cint ;
- }
- pushmath ( 15 ) ;
- curlist .modefield = 201 ;
- eqworddefine ( 5311 , -1 ) ;
- eqworddefine ( 5714 , w ) ;
- eqworddefine ( 5715 , l ) ;
- eqworddefine ( 5716 , s ) ;
- if ( eqtb [ 4060 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4060 ] .hh .v.RH , 9 ) ;
- if ( nestptr == 1 )
- buildpage () ;
- }
- else {
-
- backinput () ;
- {
- pushmath ( 15 ) ;
- eqworddefine ( 5311 , -1 ) ;
- if ( eqtb [ 4059 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4059 ] .hh .v.RH , 8 ) ;
- }
- }
- }
- starteqno () {
- starteqno_regmem
- savestack [ saveptr + 0 ] .cint = curchr ;
- incr ( saveptr ) ;
- {
- pushmath ( 15 ) ;
- eqworddefine ( 5311 , -1 ) ;
- if ( eqtb [ 4059 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4059 ] .hh .v.RH , 8 ) ;
- }
- }
- zscanmath ( p )
- halfword p ;
- {/* 20 21 10 */ scanmath_regmem
- integer c ;
- lab20: do {
- getxtoken () ;
- } while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
- lab21: switch ( curcmd )
- {case 11 :
- case 12 :
- case 67 :
- if ( curchr >= 128 )
- c = curchr ;
- else {
-
- c = eqtb [ 5139 + curchr ] .hh .v.RH ;
- if ( c == 32768L )
- {
- {
- curcs = curchr + 1 ;
- curcmd = eqtb [ curcs ] .hh.b0 ;
- curchr = eqtb [ curcs ] .hh .v.RH ;
- xtoken () ;
- backinput () ;
- }
- goto lab20 ;
- }
- }
- break ;
- case 16 :
- {
- scancharnum () ;
- curchr = curval ;
- curcmd = 67 ;
- goto lab21 ;
- }
- break ;
- case 17 :
- {
- scanfifteenbitint () ;
- c = curval ;
- }
- break ;
- case 68 :
- c = curchr ;
- break ;
- case 15 :
- {
- scantwentysevenbitin () ;
- c = curval / 4096 ;
- }
- break ;
- default:
- {
- backinput () ;
- scanleftbrace () ;
- savestack [ saveptr + 0 ] .cint = p ;
- incr ( saveptr ) ;
- pushmath ( 9 ) ;
- return ;
- }
- break ;
- }
- mem [ p ] .hh .v.RH = 1 ;
- mem [ p ] .hh.b1 = c % 256 ;
- if ( ( c >= 28672 ) && ( ( eqtb [ 5311 ] .cint >= 0 ) && ( eqtb [ 5311 ]
- .cint < 16 ) ) )
- mem [ p ] .hh.b0 = eqtb [ 5311 ] .cint ;
- else mem [ p ] .hh.b0 = ( c / 256 ) % 16 ;
- }
- zsetmathchar ( c )
- integer c ;
- {setmathchar_regmem
- halfword p ;
- if ( c >= 32768L )
- {
- curcs = curchr + 1 ;
- curcmd = eqtb [ curcs ] .hh.b0 ;
- curchr = eqtb [ curcs ] .hh .v.RH ;
- xtoken () ;
- backinput () ;
- }
- else {
-
- p = newnoad () ;
- mem [ p + 1 ] .hh .v.RH = 1 ;
- mem [ p + 1 ] .hh.b1 = c % 256 ;
- mem [ p + 1 ] .hh.b0 = ( c / 256 ) % 16 ;
- if ( c >= 28672 )
- {
- if ( ( ( eqtb [ 5311 ] .cint >= 0 ) && ( eqtb [ 5311 ] .cint < 16 ) ) )
- mem [ p + 1 ] .hh.b0 = eqtb [ 5311 ] .cint ;
- mem [ p ] .hh.b0 = 16 ;
- }
- else mem [ p ] .hh.b0 = 16 + ( c / 4096 ) ;
- mem [ curlist .tailfield ] .hh .v.RH = p ;
- curlist .tailfield = p ;
- }
- }
- mathlimitswitch () {
- /* 10 */ mathlimitswitch_regmem
- if ( curlist .headfield != curlist .tailfield )
- if ( mem [ curlist .tailfield ] .hh.b0 == 17 )
- {
- mem [ curlist .tailfield ] .hh.b1 = curchr ;
- return ;
- }
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 978 ) ;
- }
- {
- helpptr = 1 ;
- helpline [ 0 ] = 979 ;
- }
- error () ;
- }
- zscandelimiter ( p , r )
- halfword p ;
- boolean r ;
- {scandelimiter_regmem
- if ( r )
- scantwentysevenbitin () ;
- else {
-
- do {
- getxtoken () ;
- } while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
- switch ( curcmd )
- {case 11 :
- case 12 :
- curval = eqtb [ 5573 + curchr ] .cint ;
- break ;
- case 15 :
- scantwentysevenbitin () ;
- break ;
- default:
- curval = -1 ;
- break ;
- }
- }
- if ( curval < 0 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 980 ) ;
- }
- {
- helpptr = 6 ;
- helpline [ 5 ] = 981 ;
- helpline [ 4 ] = 982 ;
- helpline [ 3 ] = 983 ;
- helpline [ 2 ] = 984 ;
- helpline [ 1 ] = 985 ;
- helpline [ 0 ] = 986 ;
- }
- backerror () ;
- curval = 0 ;
- }
- mem [ p ] .qqqq .b0 = ( curval / 1048576L ) % 16 ;
- mem [ p ] .qqqq .b1 = ( curval / 4096 ) % 256 ;
- mem [ p ] .qqqq .b2 = ( curval / 256 ) % 16 ;
- mem [ p ] .qqqq .b3 = curval % 256 ;
- }
- mathradical () {
- mathradical_regmem
- {
- mem [ curlist .tailfield ] .hh .v.RH = getnode ( 5 ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- mem [ curlist .tailfield ] .hh.b0 = 24 ;
- mem [ curlist .tailfield ] .hh.b1 = 0 ;
- mem [ curlist .tailfield + 1 ] .hh = emptyfield ;
- mem [ curlist .tailfield + 3 ] .hh = emptyfield ;
- mem [ curlist .tailfield + 2 ] .hh = emptyfield ;
- scandelimiter ( curlist .tailfield + 4 , true ) ;
- scanmath ( curlist .tailfield + 1 ) ;
- }
- mathac () {
- mathac_regmem
- if ( curcmd == 45 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 987 ) ;
- }
- printesc ( 382 ) ;
- print ( 988 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 989 ;
- helpline [ 0 ] = 990 ;
- }
- error () ;
- }
- {
- mem [ curlist .tailfield ] .hh .v.RH = getnode ( 5 ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- mem [ curlist .tailfield ] .hh.b0 = 28 ;
- mem [ curlist .tailfield ] .hh.b1 = 0 ;
- mem [ curlist .tailfield + 1 ] .hh = emptyfield ;
- mem [ curlist .tailfield + 3 ] .hh = emptyfield ;
- mem [ curlist .tailfield + 2 ] .hh = emptyfield ;
- mem [ curlist .tailfield + 4 ] .hh .v.RH = 1 ;
- scanfifteenbitint () ;
- mem [ curlist .tailfield + 4 ] .hh.b1 = curval % 256 ;
- if ( ( curval >= 28672 ) && ( ( eqtb [ 5311 ] .cint >= 0 ) && ( eqtb [ 5311
- ] .cint < 16 ) ) )
- mem [ curlist .tailfield + 4 ] .hh.b0 = eqtb [ 5311 ] .cint ;
- else mem [ curlist .tailfield + 4 ] .hh.b0 = ( curval / 256 ) % 16 ;
- scanmath ( curlist .tailfield + 1 ) ;
- }
- appendchoices () {
- appendchoices_regmem
- {
- mem [ curlist .tailfield ] .hh .v.RH = newchoice () ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- incr ( saveptr ) ;
- savestack [ saveptr - 1 ] .cint = 0 ;
- scanleftbrace () ;
- pushmath ( 13 ) ;
- }
- halfword zfinmlist ( p )
- halfword p ;
- {register halfword Result; finmlist_regmem
- halfword q ;
- if ( curlist .auxfield != 0 )
- {
- mem [ curlist .auxfield + 3 ] .hh .v.RH = 3 ;
- mem [ curlist .auxfield + 3 ] .hh .v.LH = mem [ curlist .headfield ] .hh
- .v.RH ;
- if ( p == 0 )
- q = curlist .auxfield ;
- else {
-
- q = mem [ curlist .auxfield + 2 ] .hh .v.LH ;
- if ( mem [ q ] .hh.b0 != 30 )
- confusion ( 730 ) ;
- mem [ curlist .auxfield + 2 ] .hh .v.LH = mem [ q ] .hh .v.RH ;
- mem [ q ] .hh .v.RH = curlist .auxfield ;
- mem [ curlist .auxfield ] .hh .v.RH = p ;
- }
- }
- else {
-
- mem [ curlist .tailfield ] .hh .v.RH = p ;
- q = mem [ curlist .headfield ] .hh .v.RH ;
- }
- popnest () ;
- Result = q ;
- return(Result) ;
- }
- buildchoices () {
- /* 10 */ buildchoices_regmem
- halfword p ;
- unsave () ;
- p = finmlist ( 0 ) ;
- switch ( savestack [ saveptr - 1 ] .cint )
- {case 0 :
- mem [ curlist .tailfield + 1 ] .hh .v.LH = p ;
- break ;
- case 1 :
- mem [ curlist .tailfield + 1 ] .hh .v.RH = p ;
- break ;
- case 2 :
- mem [ curlist .tailfield + 2 ] .hh .v.LH = p ;
- break ;
- case 3 :
- {
- mem [ curlist .tailfield + 2 ] .hh .v.RH = p ;
- decr ( saveptr ) ;
- return ;
- }
- break ;
- }
- incr ( savestack [ saveptr - 1 ] .cint ) ;
- scanleftbrace () ;
- pushmath ( 13 ) ;
- }
- subsup () {
- subsup_regmem
- smallnumber t ;
- halfword p ;
- t = 0 ;
- p = 0 ;
- if ( curlist .tailfield != curlist .headfield )
- if ( ( mem [ curlist .tailfield ] .hh.b0 >= 16 ) && ( mem [ curlist
- .tailfield ] .hh.b0 < 30 ) )
- {
- p = curlist .tailfield + 2 + curcmd - 7 ;
- t = mem [ p ] .hh .v.RH ;
- }
- if ( ( p == 0 ) || ( t != 0 ) )
- {
- {
- mem [ curlist .tailfield ] .hh .v.RH = newnoad () ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- p = curlist .tailfield + 2 + curcmd - 7 ;
- if ( t != 0 )
- {
- if ( curcmd == 7 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 991 ) ;
- }
- {
- helpptr = 1 ;
- helpline [ 0 ] = 992 ;
- }
- }
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 993 ) ;
- }
- {
- helpptr = 1 ;
- helpline [ 0 ] = 994 ;
- }
- }
- error () ;
- }
- }
- scanmath ( p ) ;
- }
- mathfraction () {
- mathfraction_regmem
- smallnumber c ;
- c = curchr ;
- if ( curlist .auxfield != 0 )
- {
- if ( c >= 3 )
- {
- scandelimiter ( memtop - 12 , false ) ;
- scandelimiter ( memtop - 12 , false ) ;
- }
- if ( c % 3 == 0 )
- scandimen ( false , false , false ) ;
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 1001 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 1002 ;
- helpline [ 1 ] = 1003 ;
- helpline [ 0 ] = 1004 ;
- }
- error () ;
- }
- else {
-
- curlist .auxfield = getnode ( 6 ) ;
- mem [ curlist .auxfield ] .hh.b0 = 25 ;
- mem [ curlist .auxfield ] .hh.b1 = 0 ;
- mem [ curlist .auxfield + 2 ] .hh .v.RH = 3 ;
- mem [ curlist .auxfield + 2 ] .hh .v.LH = mem [ curlist .headfield ] .hh
- .v.RH ;
- mem [ curlist .auxfield + 3 ] .hh = emptyfield ;
- mem [ curlist .auxfield + 4 ] .qqqq = nulldelimiter ;
- mem [ curlist .auxfield + 5 ] .qqqq = nulldelimiter ;
- mem [ curlist .headfield ] .hh .v.RH = 0 ;
- curlist .tailfield = curlist .headfield ;
- if ( c >= 3 )
- {
- scandelimiter ( curlist .auxfield + 4 , false ) ;
- scandelimiter ( curlist .auxfield + 5 , false ) ;
- }
- switch ( c % 3 )
- {case 0 :
- {
- scandimen ( false , false , false ) ;
- mem [ curlist .auxfield + 1 ] .cint = curval ;
- }
- break ;
- case 1 :
- mem [ curlist .auxfield + 1 ] .cint = 1073741824L ;
- break ;
- case 2 :
- mem [ curlist .auxfield + 1 ] .cint = 0 ;
- break ;
- }
- }
- }
- mathleftright () {
- mathleftright_regmem
- smallnumber t ;
- halfword p ;
- t = curchr ;
- if ( ( t == 31 ) && ( curgroup != 16 ) )
- {
- if ( curgroup == 15 )
- {
- scandelimiter ( memtop - 12 , false ) ;
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 633 ) ;
- }
- printesc ( 730 ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 1005 ;
- }
- error () ;
- }
- else offsave () ;
- }
- else {
-
- p = newnoad () ;
- mem [ p ] .hh.b0 = t ;
- scandelimiter ( p + 1 , false ) ;
- if ( t == 30 )
- {
- pushmath ( 16 ) ;
- mem [ curlist .headfield ] .hh .v.RH = p ;
- curlist .tailfield = p ;
- }
- else {
-
- p = finmlist ( p ) ;
- unsave () ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newnoad () ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- mem [ curlist .tailfield ] .hh.b0 = 23 ;
- mem [ curlist .tailfield + 1 ] .hh .v.RH = 3 ;
- mem [ curlist .tailfield + 1 ] .hh .v.LH = p ;
- }
- }
- }
- aftermath () {
- aftermath_regmem
- boolean l ;
- boolean danger ;
- integer m ;
- halfword p ;
- halfword a ;
- halfword b ;
- scaled w ;
- scaled z ;
- scaled e ;
- scaled q ;
- scaled d ;
- scaled s ;
- smallnumber g1, g2 ;
- halfword r ;
- halfword t ;
- danger = false ;
- if ( ( fontparams [ eqtb [ 4581 ] .hh .v.RH ] < 22 ) || ( fontparams [ eqtb
- [ 4597 ] .hh .v.RH ] < 22 ) || ( fontparams [ eqtb [ 4613 ] .hh .v.RH ] < 22
- ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 1006 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 1007 ;
- helpline [ 1 ] = 1008 ;
- helpline [ 0 ] = 1009 ;
- }
- error () ;
- flushmath () ;
- danger = true ;
- }
- else if ( ( fontparams [ eqtb [ 4582 ] .hh .v.RH ] < 13 ) || ( fontparams [
- eqtb [ 4598 ] .hh .v.RH ] < 13 ) || ( fontparams [ eqtb [ 4614 ] .hh .v.RH ]
- < 13 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 1010 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 1011 ;
- helpline [ 1 ] = 1012 ;
- helpline [ 0 ] = 1013 ;
- }
- error () ;
- flushmath () ;
- danger = true ;
- }
- m = curlist .modefield ;
- l = false ;
- p = finmlist ( 0 ) ;
- if ( curlist .modefield == - (integer) m )
- {
- curmlist = p ;
- curstyle = 2 ;
- mlistpenalties = false ;
- mlisttohlist () ;
- a = hpack ( mem [ memtop - 3 ] .hh .v.RH , 0 , 1 ) ;
- unsave () ;
- decr ( saveptr ) ;
- if ( savestack [ saveptr + 0 ] .cint == 1 )
- l = true ;
- if ( danger )
- flushmath () ;
- m = curlist .modefield ;
- p = finmlist ( 0 ) ;
- }
- else a = 0 ;
- if ( m < 0 )
- {
- {
- mem [ curlist .tailfield ] .hh .v.RH = newmath ( eqtb [ 5702 ] .cint , 0
- ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- curmlist = p ;
- curstyle = 2 ;
- mlistpenalties = ( curlist .modefield > 0 ) ;
- mlisttohlist () ;
- mem [ curlist .tailfield ] .hh .v.RH = mem [ memtop - 3 ] .hh .v.RH ;
- while ( mem [ curlist .tailfield ] .hh .v.RH != 0 ) curlist .tailfield =
- mem [ curlist .tailfield ] .hh .v.RH ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newmath ( eqtb [ 5702 ] .cint , 1
- ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- curlist .auxfield = 1000 ;
- unsave () ;
- }
- else {
-
- {
- getxtoken () ;
- if ( curcmd != 3 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 1014 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1015 ;
- helpline [ 0 ] = 1016 ;
- }
- backerror () ;
- }
- }
- curmlist = p ;
- curstyle = 0 ;
- mlistpenalties = false ;
- mlisttohlist () ;
- p = mem [ memtop - 3 ] .hh .v.RH ;
- adjusttail = memtop - 5 ;
- b = hpack ( p , 0 , 1 ) ;
- t = adjusttail ;
- adjusttail = 0 ;
- w = mem [ b + 1 ] .cint ;
- z = eqtb [ 5715 ] .cint ;
- s = eqtb [ 5716 ] .cint ;
- if ( ( a == 0 ) || danger )
- {
- e = 0 ;
- q = 0 ;
- }
- else {
-
- e = mem [ a + 1 ] .cint ;
- q = e + fontinfo [ 6 + parambase [ eqtb [ 4581 ] .hh .v.RH ] ] .cint ;
- }
- if ( w + q > z )
- {
- if ( ( e != 0 ) && ( ( w - totalshrink [ 0 ] + q <= z ) || ( totalshrink
- [ 1 ] != 0 ) || ( totalshrink [ 2 ] != 0 ) || ( totalshrink [ 3 ] != 0 )
- ) )
- {
- freenode ( b , 7 ) ;
- b = hpack ( p , z - q , 0 ) ;
- }
- else {
-
- e = 0 ;
- if ( w > z )
- {
- freenode ( b , 7 ) ;
- b = hpack ( p , z , 0 ) ;
- }
- }
- w = mem [ b + 1 ] .cint ;
- }
- d = half ( z - w ) ;
- if ( ( e > 0 ) && ( d < 2 * e ) )
- {
- d = half ( z - w - e ) ;
- if ( p != 0 )
- if ( mem [ p ] .hh.b0 == 10 )
- d = 0 ;
- }
- {
- mem [ curlist .tailfield ] .hh .v.RH = newpenalty ( eqtb [ 5278 ] .cint
- ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- if ( ( d + s <= eqtb [ 5714 ] .cint ) || l )
- {
- g1 = 3 ;
- g2 = 4 ;
- }
- else {
-
- g1 = 5 ;
- g2 = 6 ;
- }
- if ( l && ( e == 0 ) )
- {
- mem [ a + 4 ] .cint = s ;
- appendtovlist ( a ) ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newpenalty ( 10000 ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- }
- else {
-
- mem [ curlist .tailfield ] .hh .v.RH = newparamglue ( g1 ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- if ( e != 0 )
- {
- r = newkern ( z - w - e - d ) ;
- if ( l )
- {
- mem [ a ] .hh .v.RH = r ;
- mem [ r ] .hh .v.RH = b ;
- b = a ;
- d = 0 ;
- }
- else {
-
- mem [ b ] .hh .v.RH = r ;
- mem [ r ] .hh .v.RH = a ;
- }
- b = hpack ( b , 0 , 1 ) ;
- }
- mem [ b + 4 ] .cint = s + d ;
- appendtovlist ( b ) ;
- if ( t != memtop - 5 )
- {
- mem [ curlist .tailfield ] .hh .v.RH = mem [ memtop - 5 ] .hh .v.RH ;
- curlist .tailfield = t ;
- }
- if ( ( a != 0 ) && ( e == 0 ) && ! l )
- {
- {
- mem [ curlist .tailfield ] .hh .v.RH = newpenalty ( 10000 ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- mem [ a + 4 ] .cint = s + z - mem [ a + 1 ] .cint ;
- appendtovlist ( a ) ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newpenalty ( eqtb [ 5279 ]
- .cint ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- }
- else {
-
- {
- mem [ curlist .tailfield ] .hh .v.RH = newpenalty ( eqtb [ 5279 ]
- .cint ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- {
- mem [ curlist .tailfield ] .hh .v.RH = newparamglue ( g2 ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- }
- resumeafterdisplay () ;
- }
- }
- resumeafterdisplay () {
- resumeafterdisplay_regmem
- if ( curgroup != 15 )
- confusion ( 1017 ) ;
- unsave () ;
- curlist .pgfield = curlist .pgfield + 3 ;
- pushnest () ;
- curlist .modefield = 101 ;
- curlist .auxfield = 1000 ;
- {
- getxtoken () ;
- if ( curcmd != 10 )
- backinput () ;
- }
- if ( nestptr == 1 )
- buildpage () ;
- }
- getrtoken () {
- /* 20 */ getrtoken_regmem
- lab20: do {
- gettoken () ;
- } while ( ! ( curtok != 2592 ) ) ;
- if ( ( curcs == 0 ) || ( curcs > 3258 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 1032 ) ;
- }
- {
- helpptr = 5 ;
- helpline [ 4 ] = 1033 ;
- helpline [ 3 ] = 1034 ;
- helpline [ 2 ] = 1035 ;
- helpline [ 1 ] = 1036 ;
- helpline [ 0 ] = 1037 ;
- }
- if ( curcs == 0 )
- backinput () ;
- curtok = 7354 ;
- inserror () ;
- goto lab20 ;
- }
- }
- trapzeroglue () {
- trapzeroglue_regmem
- if ( ( mem [ curval + 1 ] .cint == 0 ) && ( mem [ curval + 2 ] .cint == 0 )
- && ( mem [ curval + 3 ] .cint == 0 ) )
- {
- incr ( mem [ 0 ] .hh .v.RH ) ;
- deleteglueref ( curval ) ;
- curval = 0 ;
- }
- }
- zdoregistercommand ( a )
- smallnumber a ;
- {/* 40 10 */ doregistercommand_regmem
- halfword l, q, r, s ;
- schar p ;
- q = curcmd ;
- {
- if ( q != 88 )
- {
- getxtoken () ;
- if ( ( curcmd >= 72 ) && ( curcmd <= 75 ) )
- {
- l = curchr ;
- p = curcmd - 72 ;
- goto lab40 ;
- }
- if ( curcmd != 88 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 541 ) ;
- }
- printcmdchr ( curcmd , curchr ) ;
- print ( 542 ) ;
- printcmdchr ( q , 0 ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 1058 ;
- }
- error () ;
- return ;
- }
- }
- p = curchr ;
- scaneightbitint () ;
- switch ( p )
- {case 0 :
- l = curval + 5317 ;
- break ;
- case 1 :
- l = curval + 5721 ;
- break ;
- case 2 :
- l = curval + 3544 ;
- break ;
- case 3 :
- l = curval + 3800 ;
- break ;
- }
- }
- lab40: ;
- if ( q == 88 )
- scanoptionalequals () ;
- else if ( scankeyword ( 1054 ) )
- ;
- aritherror = false ;
- if ( q < 90 )
- if ( p < 2 )
- {
- if ( p == 0 )
- scanint () ;
- else scandimen ( false , false , false ) ;
- if ( q == 89 )
- curval = curval + eqtb [ l ] .cint ;
- }
- else {
-
- scanglue ( p ) ;
- if ( q == 89 )
- {
- q = newspec ( curval ) ;
- r = eqtb [ l ] .hh .v.RH ;
- deleteglueref ( curval ) ;
- mem [ q + 1 ] .cint = mem [ q + 1 ] .cint + mem [ r + 1 ] .cint ;
- if ( mem [ q + 2 ] .cint == 0 )
- mem [ q ] .hh.b0 = 0 ;
- if ( mem [ q ] .hh.b0 == mem [ r ] .hh.b0 )
- mem [ q + 2 ] .cint = mem [ q + 2 ] .cint + mem [ r + 2 ] .cint ;
- else if ( ( mem [ q ] .hh.b0 < mem [ r ] .hh.b0 ) && ( mem [ r + 2 ]
- .cint != 0 ) )
- {
- mem [ q + 2 ] .cint = mem [ r + 2 ] .cint ;
- mem [ q ] .hh.b0 = mem [ r ] .hh.b0 ;
- }
- if ( mem [ q + 3 ] .cint == 0 )
- mem [ q ] .hh.b1 = 0 ;
- if ( mem [ q ] .hh.b1 == mem [ r ] .hh.b1 )
- mem [ q + 3 ] .cint = mem [ q + 3 ] .cint + mem [ r + 3 ] .cint ;
- else if ( ( mem [ q ] .hh.b1 < mem [ r ] .hh.b1 ) && ( mem [ r + 3 ]
- .cint != 0 ) )
- {
- mem [ q + 3 ] .cint = mem [ r + 3 ] .cint ;
- mem [ q ] .hh.b1 = mem [ r ] .hh.b1 ;
- }
- curval = q ;
- }
- }
- else {
-
- scanint () ;
- if ( p < 2 )
- if ( q == 90 )
- curval = nxplusy ( eqtb [ l ] .cint , curval , 0 ) ;
- else curval = xovern ( eqtb [ l ] .cint , curval ) ;
- else {
-
- s = eqtb [ l ] .hh .v.RH ;
- r = newspec ( s ) ;
- if ( q == 90 )
- {
- mem [ r + 1 ] .cint = nxplusy ( mem [ s + 1 ] .cint , curval , 0 ) ;
- mem [ r + 2 ] .cint = nxplusy ( mem [ s + 2 ] .cint , curval , 0 ) ;
- mem [ r + 3 ] .cint = nxplusy ( mem [ s + 3 ] .cint , curval , 0 ) ;
- }
- else {
-
- mem [ r + 1 ] .cint = xovern ( mem [ s + 1 ] .cint , curval ) ;
- mem [ r + 2 ] .cint = xovern ( mem [ s + 2 ] .cint , curval ) ;
- mem [ r + 3 ] .cint = xovern ( mem [ s + 3 ] .cint , curval ) ;
- }
- curval = r ;
- }
- }
- if ( aritherror )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 133 ) ;
- print ( 1055 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1056 ;
- helpline [ 0 ] = 1057 ;
- }
- error () ;
- return ;
- }
- if ( p < 2 )
- if ( ( a >= 4 ) )
- geqworddefine ( l , curval ) ;
- else eqworddefine ( l , curval ) ;
- else {
-
- trapzeroglue () ;
- if ( ( a >= 4 ) )
- geqdefine ( l , 116 , curval ) ;
- else eqdefine ( l , 116 , curval ) ;
- }
- }
-